while(a<b<c)怎么理解?

来源:百度知道 编辑:UC知道 时间:2024/09/20 21:45:45
同上呀

首先计算a<b是否成立,再计算1<c或0<c,
如果成立则执行while循环,否则不执行
比如: 2<1<1,2<1为假,则计算0<1为真,执行while循环
再如: 1<2<0, 1<2为真,再计算1<0为假,不执行while循环

我在VC++6.0里做了个环境调试了一下这个while(a<b<c)。请看:

#include "stdio.h"
void main(void)
{
int a=2,b=3,c=4; //情形1
int a=5,b=3,c=4; //情形2
int int a=2,b=3,c=-1;//情形3
while (a<b<c)
{
printf("a<b<c\n");
}

}

情形1和情形2的条件下,调试结果相同。如下:
compile时 0 error,1 warning
C:\Documents and Settings\Administrator\ee.cpp(5) : warning C4804: '<' : unsafe use of type 'bool' in operation
run时 程序无限输出a<b<c,死循环。按Ctrl + C 结束程序。

情形3的条件下,
compile时 0 error,1 warning
C:\Documents and Settings\Administrator\ee.cpp(5) : warning C4804: '<' : unsafe use of type 'bool' in operation
run时 程序无任何输出。

调试得出结论:while(a<b<